// 统一场景配置加载工具
let sceneConfig = null

/**
 * 加载场景配置文件（包含BIM场景和摄像头配置）
 * @returns {Promise<Object>} 配置对象
 */
export const loadSceneConfig = async () => {
  if (sceneConfig) {
    return sceneConfig
  }
  
  try {
    const response = await fetch('/src/config/sceneConfig.json')
    if (!response.ok) {
      throw new Error(`配置文件加载失败: ${response.status}`)
    }
    sceneConfig = await response.json()
    
    // 设置全局配置供 peer-stream.js 使用
    window.sceneConfig = sceneConfig.BIMScene
    
    console.log('场景配置加载成功:', sceneConfig)
    return sceneConfig
  } catch (error) {
    console.error('加载场景配置失败:', error)
    // 返回默认配置作为备用
    const defaultConfig = getDefaultSceneConfig()
    window.sceneConfig = defaultConfig.BIMScene
    return defaultConfig
  }
}

/**
 * 获取指定摄像头的配置
 * @param {string} cameraType - 摄像头类型 (dogCamera | panoramicCamera)
 * @returns {Object|null} 摄像头配置
 */
export const getCameraConfig = (cameraType) => {
  return sceneConfig?.cameras[cameraType] || null
}

/**
 * 获取BIM场景配置
 * @returns {Object|null} BIM场景配置
 */
export const getBIMSceneConfig = () => {
  return sceneConfig?.BIMScene || null
}

/**
 * 获取默认配置（备用方案）
 * @returns {Object} 默认配置
 */
const getDefaultSceneConfig = () => {
  return {
    BIMScene: {
      Url: "192.10.221.6",
      Port: 800,
      Urlprefix: "fff"
    },
    cameras: {
      dogCamera: {
        name: "机器狗视角",
        whepUrl: "http://192.10.221.191:1985/rtc/v1/whep/?app=realsense&stream=livestream"
      },
      panoramicCamera: {
        name: "全景视图",
        whepUrl: "http://192.10.221.191:1985/rtc/v1/whep/?app=frontcam&stream=livestream"
      }
    }
  }
}

/**
 * 重新加载配置（用于热更新）
 * @returns {Promise<Object>} 新的配置对象
 */
export const reloadSceneConfig = async () => {
  sceneConfig = null
  return await loadSceneConfig()
}

// 保持向后兼容的别名
export const loadCameraConfig = loadSceneConfig
export const reloadCameraConfig = reloadSceneConfig